package _ppt_test;

/*
    编写一个Java程序，实现字符串的压缩。例如，"aaabbcdddd" 压缩为 "a3b2c1d4"
 */
public class demo07 {
    public static void main(String[] args) {                  // 主方法，程序入口
        demo07 demo07 = new demo07();                         // 创建demo07对象
        System.out.println(demo07.zStr("aabbccdde"));         // 调用zStr方法并输出结果
    }

    public String zStr(String str) {                          // 定义zStr方法，用于压缩字符串
        StringBuilder stringBuilder = new StringBuilder();    // 创建StringBuilder对象，用于构建压缩后的字符串
        int count = 1;                                        // 初始化计数器，记录当前字符的连续出现次数

        for (int i = 0; i < str.length(); i++) {              // 遍历字符串
            char currentChar = str.charAt(i);                 // 获取当前字符
            if (i + 1 < str.length() && currentChar == str.charAt(i + 1)) {  // 如果下一个字符与当前字符相同
                count++;                                      // 计数器加1
            } else {                                          // 如果下一个字符与当前字符不同
                stringBuilder.append(currentChar).append(count);  // 将当前字符及其出现次数追加到结果中
                count = 1;                                    // 重置计数器
            }
        }

        return stringBuilder.toString();                      // 返回压缩后的字符串
    }
}
